﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Entidades;

namespace Logica
{
    public class ControlBusesBLL
    {
        public string AsignarBusARuta(string Conductor, string Placa, string NomRuta)
        {
            justimeEntities bd = new justimeEntities();
            controlbus ctrlBus = new controlbus();
            ctrlBus.NomConductorl = Conductor;
            ctrlBus.Placa = Placa;
            ctrlBus.NomRuta = NomRuta;
            ctrlBus.Fecha = DateTime.Now;
            bd.controlbuses.Add(ctrlBus);
            bd.SaveChanges();

            var RutaActual = "";
            bus Bus = bd.buses.Where(t => t.Placa == Placa).FirstOrDefault();
            if (Bus != null)
            {
                RutaActual = Bus.Ruta;
                Bus.Ruta = NomRuta;
                bd.SaveChanges();
            }

            ruta Rut = new ruta();
            Rut = bd.rutas.Where(u => u.NomRuta == NomRuta).FirstOrDefault();
            int BusesActuales = int.Parse(Rut.NumBuses.ToString());
            Rut.NumBuses = BusesActuales + 1;
            bd.SaveChanges();

            if (RutaActual != "SIN RUTA")
            {
                ruta Rut2 = new ruta();
                Rut2 = bd.rutas.Where(u => u.NomRuta == RutaActual).FirstOrDefault();
                int BusesActuales2 = int.Parse(Rut2.NumBuses.ToString());
                Rut2.NumBuses = BusesActuales2 - 1;
                bd.SaveChanges();
            }
            return "true";
        }

        public List<AsignacionDTO> getAsignaciones()
        {
            justimeEntities bd = new justimeEntities();
            List<controlbus> ctrlB = new List<controlbus>();
            List<AsignacionDTO> ctrlB2 = new List<AsignacionDTO>();

            ctrlB = bd.controlbuses.OrderByDescending(t=>t.Fecha).ToList();
            foreach(controlbus item in ctrlB)
            {
                AsignacionDTO asig = new AsignacionDTO();
                asig.Placa = item.Placa;
                asig.Conductor = item.NomConductorl;
                asig.NomRuta = item.NomRuta;
                asig.Fecha = item.Fecha;
                ctrlB2.Add(asig);
            }
            return ctrlB2;
        }
    }
}
